Explain about ordering of alternatives in `choice'.
authorRichard M. Stallman <rms@gnu.org>
Fri, 29 Nov 2002 15:12:21 +0000 (15:12 +0000)
committerRichard M. Stallman <rms@gnu.org>
Fri, 29 Nov 2002 15:12:21 +0000 (15:12 +0000)
lispref/customize.texi

index 3f107b3fb00acc1a5dfd6498528dd1086363b861..1fee9f8d6dd7899ec2bed9e5187b7162384ca958 100644 (file)
@@ -661,6 +661,19 @@ In any alternative for which @code{nil} is not a valid value, other than
 a @code{const}, you should specify a valid default for that alternative
 using the @code{:value} keyword.  @xref{Type Keywords}.
 
+If some values are covered by more than one of the alternatives,
+customize will choose the first alternative that the value fits.  This
+means you should always list the most specific types first, and the
+most general last.  Here's an example of proper usage:
+
+@example
+(choice (const :tag "Off" nil) symbol (sexp :tag "Other"))
+@end example
+
+@noindent
+This way, the special value @code{nil} is not treated like other
+symbols, and symbols are not treated like other Lisp expressions.
+
 @item (radio @var{element-types}@dots{})
 This is similar to @code{choice}, except that the choices are displayed
 using `radio buttons' rather than a menu.  This has the advantage of